package com.lesama.collection;

import com.lesama.domain.Student;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

/*
    迭代器遍历：
        Iterator<String> it = 集合对象.iterator();
        while(it.hasNext()) {
            String s = it.next();
        }
        Iterator内部有一个cursor指针，初始指向0，每次调用next时,先返回cursor指向的元素，然后cursor++
        hasNext会判断cursor是否等于size，若等于则返回false
    增强for循环：
        for(类型 e ： 集合对象)， 底层原理是迭代器遍历
    forEach方法：
        集合对象.forEach(item -> {}), 底层原理是增强for
 */

public class CollectionTest2 {
    public static void main(String[] args) {
        Collection<Student> c = new ArrayList<Student>();
        c.add(new Student("张三", 18));
        c.add(new Student("李四", 19));
        c.add(new Student("王五", 20));
        Iterator<Student> it = c.iterator();
        while (it.hasNext()) {
            Student student = it.next();
            System.out.println(student);
        }

        System.out.println("-------------------------------");

        // 增强for循环
        for (Student student : c) {
            System.out.println(student);
        }

        System.out.println("-------------------------------");

        // forEach方法
        c.forEach(System.out::println);
    }
}